package com.ssy.lingxi.order.model.vo.mobile.response;

import com.ssy.lingxi.common.constant.order.OrderSourceKindEnum;
import com.ssy.lingxi.order.model.constant.OrderOuterStatusEnum;
import com.ssy.lingxi.order.model.constant.OrderPromotionStatusEnum;
import com.ssy.lingxi.order.model.dto.MobileOrderQueryDTO;

import java.io.Serializable;

/**
 * App - 全部订单 - 查询订单列表时返回的VO
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-15
 */
public class MobileOrderManageQueryVO extends MobileOrderQueryVO implements Serializable {
    private static final long serialVersionUID = -7204503977190377920L;

    public MobileOrderManageQueryVO(MobileOrderQueryDTO query) {
        super(query);
        this.groupOrder = query.getOrderKind().equals(OrderSourceKindEnum.GROUP.getCode());
        this.groupId = query.getGroupId();
        this.promotionStatus = query.getPromotionStatus();
        this.promotionStatusName = OrderPromotionStatusEnum.getNameByCode(this.promotionStatus);
        this.showInvite = query.getOrderKind().equals(OrderSourceKindEnum.GROUP.getCode()) && query.getOuterStatus().equals(OrderOuterStatusEnum.TO_CONFIRM_DELIVERY.getCode()) && query.getPromotionStatus().equals(OrderPromotionStatusEnum.GROUP_WAITING_CONFIRM.getCode());
        this.showSubmit = false;
        this.showCancel = false;
        this.showAfterSales = false;
        this.showComment = false;
        this.showGradeOne = false;
        this.showGradeTwo = false;
        this.showConfirmContract = false;
        this.showPay = false;
        this.showReception = false;
        this.showConfirmReception = false;
        this.showReceive = false;
        this.showArchive = false;
        this.showBuyAgain = false;
        this.showModifyDeliverTime = false;
        this.showRefund = false;
        this.showDelete = false;
    }

    /**
     * 是否是“拼团”订单
     */
    private Boolean groupOrder;

    /**
     * 拼团Id，如果不是“拼团订单”，此字段值为0
     */
    private Long groupId;

    /**
     * 是否显示“邀请好友拼团”按钮
     */
    private Boolean showInvite;

    /**
     * 营销活动（拼团）状态枚举，0-无营销活动，1-拼团中，2-等待拼团确认，3-拼团失败，4-拼团成功
     */
    private Integer promotionStatus;

    /**
     * 营销活动（拼团）状态名称
     */
    private String promotionStatusName;

    /**
     * 是否显示“提交”按钮
     */
    private Boolean showSubmit;

    /**
     * 是否显示“取消订单”按钮
     */
    private Boolean showCancel;

    /**
     * 是否显示“售后”按钮
     */
    private Boolean showAfterSales;

    /**
     * 是否显示“评价”按钮
     */
    private Boolean showComment;

    /**
     * 是否显示“一级审核”按钮
     */
    private Boolean showGradeOne;

    /**
     * 是否显示“二级审核”按钮
     */
    private Boolean showGradeTwo;

    /**
     * 是否显示“确认电子合同”按钮
     */
    private Boolean showConfirmContract;

    /**
     * 是否显示“支付”按钮
     */
    private Boolean showPay;

    /**
     * 是否显示“新增采购收货单”按钮
     */
    private Boolean showReception;

    /**
     * 是否显示“审核采购收货单”按钮
     */
    private Boolean showConfirmReception;

    /**
     * 是否显示“确认收货”按钮
     */
    private Boolean showReceive;

    /**
     * 是否显示“归档”按钮
     */
    private Boolean showArchive;

    /**
     * 是否显示“再次购买”按钮
     */
    private Boolean showBuyAgain;

    /**
     * 是否显示“调整送货时间”按钮
     */
    private Boolean showModifyDeliverTime;

    /**
     * 是否显示“退款”按钮
     */
    private Boolean showRefund;

    /**
     * 是否显示“删除”按钮
     */
    private Boolean showDelete;

    public Boolean getGroupOrder() {
        return groupOrder;
    }

    public void setGroupOrder(Boolean groupOrder) {
        this.groupOrder = groupOrder;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }

    public Boolean getShowInvite() {
        return showInvite;
    }

    public void setShowInvite(Boolean showInvite) {
        this.showInvite = showInvite;
    }

    public Integer getPromotionStatus() {
        return promotionStatus;
    }

    public void setPromotionStatus(Integer promotionStatus) {
        this.promotionStatus = promotionStatus;
    }

    public String getPromotionStatusName() {
        return promotionStatusName;
    }

    public void setPromotionStatusName(String promotionStatusName) {
        this.promotionStatusName = promotionStatusName;
    }

    public Boolean getShowSubmit() {
        return showSubmit;
    }

    public void setShowSubmit(Boolean showSubmit) {
        this.showSubmit = showSubmit;
    }

    public Boolean getShowCancel() {
        return showCancel;
    }

    public void setShowCancel(Boolean showCancel) {
        this.showCancel = showCancel;
    }

    public Boolean getShowAfterSales() {
        return showAfterSales;
    }

    public void setShowAfterSales(Boolean showAfterSales) {
        this.showAfterSales = showAfterSales;
    }

    public Boolean getShowComment() {
        return showComment;
    }

    public void setShowComment(Boolean showComment) {
        this.showComment = showComment;
    }

    public Boolean getShowGradeOne() {
        return showGradeOne;
    }

    public void setShowGradeOne(Boolean showGradeOne) {
        this.showGradeOne = showGradeOne;
    }

    public Boolean getShowGradeTwo() {
        return showGradeTwo;
    }

    public void setShowGradeTwo(Boolean showGradeTwo) {
        this.showGradeTwo = showGradeTwo;
    }

    public Boolean getShowConfirmContract() {
        return showConfirmContract;
    }

    public void setShowConfirmContract(Boolean showConfirmContract) {
        this.showConfirmContract = showConfirmContract;
    }

    public Boolean getShowPay() {
        return showPay;
    }

    public void setShowPay(Boolean showPay) {
        this.showPay = showPay;
    }

    public Boolean getShowReception() {
        return showReception;
    }

    public void setShowReception(Boolean showReception) {
        this.showReception = showReception;
    }

    public Boolean getShowConfirmReception() {
        return showConfirmReception;
    }

    public void setShowConfirmReception(Boolean showConfirmReception) {
        this.showConfirmReception = showConfirmReception;
    }

    public Boolean getShowReceive() {
        return showReceive;
    }

    public void setShowReceive(Boolean showReceive) {
        this.showReceive = showReceive;
    }

    public Boolean getShowArchive() {
        return showArchive;
    }

    public void setShowArchive(Boolean showArchive) {
        this.showArchive = showArchive;
    }

    public Boolean getShowBuyAgain() {
        return showBuyAgain;
    }

    public void setShowBuyAgain(Boolean showBuyAgain) {
        this.showBuyAgain = showBuyAgain;
    }

    public Boolean getShowModifyDeliverTime() {
        return showModifyDeliverTime;
    }

    public void setShowModifyDeliverTime(Boolean showModifyDeliverTime) {
        this.showModifyDeliverTime = showModifyDeliverTime;
    }

    public Boolean getShowRefund() {
        return showRefund;
    }

    public void setShowRefund(Boolean showRefund) {
        this.showRefund = showRefund;
    }

    public Boolean getShowDelete() {
        return showDelete;
    }

    public void setShowDelete(Boolean showDelete) {
        this.showDelete = showDelete;
    }
}
